package org.jawa.learning.dao;

import java.util.List;

import org.jawa.core.exception.NotFoundException;
import org.jawa.learning.model.Menu;

public interface MenuDao extends GenericDao<Menu, Long> {

	/**
	 * 根据菜单ID 返回菜单.
	 *
	 * @param menuId 菜单ID.
	 * @return 菜单.
	 * @throws NotFoundException 菜单没有找到.
	 */
	public Menu getMenu(Long menuId) throws NotFoundException;
	
	/**
	 * 返回上级菜单下的所有直接子菜单
	 * @param parentId
	 * @return
	 */
	public List<Menu> getTopMenus();
	
	/**
	 * 返回上级菜单下的所有直接子菜单
	 * @param parentId
	 * @return
	 */
	public List<Menu> getChildrenMenus(Long parentId);
	
	/**
	 * 返回角色拥有的所有菜单.
	 * @param roleId
	 * @return
	 */
	List<Menu> getMenusByRole(Long roleId);
}
